package com.farm.kaiping.po;

import java.time.LocalDate;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.TableLogic;
import com.farm.common.util.PageParaPO;
import com.farm.kaiping.entity.SysMenu;
import com.farm.kaiping.entity.SysRole;
import com.farm.kaiping.entity.SysRoleMenu;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import java.util.List;

/**
 * 用户表(SysUser)表实体类
 *
 * @author zhuhui
 * @since 2024-11-26 23:33:47
 */
@Data
@ApiModel("用户表")
public class SysUserPO {
	/**
	 * 主键ID
	 */
	@ApiModelProperty("主键ID")
	private Integer userId;
	/**
	 * 用户ID集合
	 */
	@ApiModelProperty("用户ID集合")
	private List<Integer> userIdList;
	/**
	 * 用户名
	 */
	@ApiModelProperty("用户名")
	@Length(max = 64, message = "用户名的长度不能超过64")
	@NotEmpty(message = "用户名不能为空")
	private String username;
	/**
	 * 密码
	 */
	@ApiModelProperty("密码")
	@Length(min = 6,max = 255, message = "密码的长度在6~255个字符之间")
	@NotEmpty(message = "密码不能为空")
	private String password;
	/**
	 * 密码
	 */
	@ApiModelProperty("密码")
	@Length(min = 6,max = 255, message = "密码的长度在6~255个字符之间")
	@NotEmpty(message = "旧密码不能为空")
	private String oldPassword;
	/**
	 * 排序
	 */
	@ApiModelProperty("排序")
	private String salt;
	/**
	 * 性别(1男2女)
	 */
	@ApiModelProperty("性别(1男2女)")
	private Integer sex;
	/**
	 * 出生日期
	 */
	@ApiModelProperty("出生日期")
	private LocalDate birthDay;
	/**
	 * 电话
	 */
	@ApiModelProperty("电话")
	private String phone;
	/**
	 * 头像地址
	 */
	@ApiModelProperty("头像地址")
	private String avatar;
	/**
	 * 部门ID
	 */
	@ApiModelProperty("部门ID")
	private Integer deptId;
	/**
	 * roleId 用户角色id
	 */
	@ApiModelProperty(value = "用户角色id")
	private Integer roleId;
	/**
	 * 锁定标记 0正常 1失效 9锁定
	 */
	@ApiModelProperty("锁定标记 0正常 1失效 9锁定")
	private Integer lockFlag;
	/**
	 * 锁定时间
	 */
	@ApiModelProperty("锁定时间")
	private LocalDateTime lockTime;
	/**
	 * 微信登录openId
	 */
	@ApiModelProperty("微信登录openId")
	private String wxOpenid;
	/**
	 * 小程序openId
	 */
	@ApiModelProperty("小程序openId")
	private String miniOpenid;
	/**
	 * 用户类型;1：平台用户，2：平台管理员
	 */
	@ApiModelProperty("用户类型;1：平台用户，2：平台管理员")
	private Integer classifyId;
	/**
	 * 真实姓名
	 */
	@ApiModelProperty("真实姓名")
	private String realName;
	/**
	 * 证件号码
	 */
	@ApiModelProperty("证件号码")
	private String idCard;
	/**
	 * 密码修改时间
	 */
	@ApiModelProperty("密码修改时间")
	private LocalDateTime passwordModifyTime;
	/**
	 * 登录时间
	 */
	@ApiModelProperty("登录时间")
	private LocalDateTime loginTime;
	/**
	 * 删除标记(0否1是)
	 */
	@ApiModelProperty("删除标记(0否1是)")
	@TableLogic(value = "0",delval = "1")
	private Integer delFlag;
	/**
	 * 新增时间
	 */
	@ApiModelProperty("新增时间")
	private LocalDateTime createTime;
	/**
	 * 创建人ID
	 */
	@ApiModelProperty("创建人ID")
	private Integer createUserId;
	/**
	 * 创建人姓名
	 */
	@ApiModelProperty("创建人姓名")
	private String createUserName;
	/**
	 * 更新时间
	 */
	@ApiModelProperty("更新时间")
	private LocalDateTime updateTime;
	/**
	 * 更新人ID
	 */
	@ApiModelProperty("更新人ID")
	private Integer updateUserId;
	/**
	 * 更新人姓名
	 */
	@ApiModelProperty("更新人姓名")
	private String updateUserName;
	/**
	 * 租户ID
	 */
	@ApiModelProperty("租户ID")
	private Integer tenantId;

	@ApiModelProperty("分页参数")
	private PageParaPO pageParaPO;

	/**
	 * 创建时间区间（用作前端查询）
	 */
	@ApiModelProperty(value = "创建时间区间查询")
	private String createTimeBetween;
	/**
	 * 更新时间区间（用作前端查询）
	 */
	@ApiModelProperty(value = "更新时间区间查询")
	private String updateTimeBetween;
    /**
	 * 批量删除 id合集
	 */
	@ApiModelProperty("批量删除id")
	private List<Integer> batchDel;

	/**
	 * 用户权限
	 */
	@ApiModelProperty("用户权限")
	private List<String> permissions;
	/**
	 * idList id合集
	 */
	@ApiModelProperty(value = "idList")
	private List<Integer> idList;
	/**
	 * roleCode 用户角色编码
	 */
	@ApiModelProperty(value = "用户角色编码")
	private String roleCode;
	/**
	 * sysRole 用户的角色
	 */
	@ApiModelProperty(value = "用户的角色")
	private SysRole sysRole;
	/**
	 * 用户所属角色菜单ID集合
	 */
	@ApiModelProperty("用户所属角色菜单ID集合")
	private List<Integer> menuIdList;
	/**
	 * 用户所属角色的菜单集合
	 */
	@ApiModelProperty("用户所属角色的菜单集合")
	private List<SysMenu> menuList;



}
